#!/bin/bash

# Git 代理配置脚本
# 用法: ./git_proxy.sh [set|unset] [proxy_url]

show_help() {
    echo "Git 代理配置脚本"
    echo "用法:"
    echo "  ./git_proxy.sh set [proxy_url]    - 设置 Git 代理"
    echo "  ./git_proxy.sh unset              - 取消 Git 代理"
    echo "  ./git_proxy.sh show               - 显示当前代理设置"
    echo "  ./git_proxy.sh help               - 显示帮助信息"
    echo ""
    echo "示例:"
    echo "  ./git_proxy.sh set http://127.0.0.1:7890"
    echo "  ./git_proxy.sh unset"
}

show_current_proxy() {
    echo "当前 Git 代理设置:"
    echo "HTTP 代理:  $(git config --global --get http.proxy)"
    echo "HTTPS 代理: $(git config --global --get https.proxy)"
}

set_proxy() {
    local proxy="$1"
    
    if [ -z "$proxy" ]; then
        # 使用默认代理地址
        proxy="http://127.0.0.1:7890"
        echo "使用默认代理: $proxy"
    fi
    
    # 设置 HTTP 代理
    git config --global http.proxy "$proxy"
    
    # 设置 HTTPS 代理
    git config --global https.proxy "$proxy"
    
    echo "Git 代理已设置为 $proxy"
    echo "注意: 如果您需要为 HTTPS 使用不同的代理，请手动设置 https.proxy"
}

unset_proxy() {
    git config --global --unset http.proxy
    git config --global --unset https.proxy
    echo "Git 代理设置已移除"
}

# 主程序
case "$1" in
    set)
        set_proxy "$2"
        ;;
    unset)
        unset_proxy
        ;;
    show)
        show_current_proxy
        ;;
    help|--help|-h)
        show_help
        ;;
    *)
        if [ -z "$1" ]; then
            show_help
        else
            echo "未知命令: $1"
            show_help
        fi
        ;;
esac

# 显示当前设置
show_current_proxy 